# 使用 Node.js 18 作为基础镜像
FROM 192.168.10.17:10888/library/node:18 as builder

# 在容器中创建工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json 文件到容器内的工作目录，这一步是为了先安装依赖，利用 Docker 的缓存机制，
# 当依赖没有变化时可以加快后续构建速度
COPY package*.json /app
# 复制仓库文件
COPY .npmrc /app/.npmrc
# 安装项目依赖，设置 --force 是为了避免一些版本兼容问题强行安装（可根据实际情况决定是否添加此参数）
RUN npm install --force

# 复制整个项目代码到容器内的工作目录
COPY . /app

# 构建 Vue 项目（如果是生产环境，这里可以使用对应的构建命令，比如对于 Vue CLI 创建的项目可以是 'npm run build'，
# 这里假设是开发环境，先不进行构建，只是准备好运行环境）
RUN npm run build:test

FROM  192.168.10.17:10888/library/nginx:23-3
# 复制构建好的 Vue 项目静态文件到 nginx 容器内的默认网站目录
COPY --from=builder /app/dist /usr/share/nginx/html
# 复制构建nginx 配置文件
COPY ./vue-default.conf /etc/nginx/conf.d/
# 暴露 nginx 监听的端口
EXPOSE 9001